package io.renren.modules.projectinfo.dao;

import io.renren.modules.projectinfo.entity.ProjectinfosCustomEntity;
import io.renren.modules.projectinfo.entity.ProjectinfosEntity;
import io.renren.modules.sys.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 
 * 
 * @author 黄清
 * @email
 * @date 2018-10-18 15:20:31
 */
@Mapper
public interface ProjectinfosDao extends BaseDao<ProjectinfosEntity> {
    //软删除项目
    int apiSoftDelete(Map<String, Object> map);

    //查询我的项目
    List<ProjectinfosCustomEntity> queryApiMyList(Map<String, Object> map);
    //查询我的项目总数量
    int queryApiMyTotal(Map<String, Object> map);

    //删除用户所有项目
    int deleteByUser(String[] createuser);

    //删除
    int apiDeletes(Map<String, Object> map);

    //查询项目简单信息
    List<ProjectinfosCustomEntity> queryDescList(Map<String, Object> map);

    //查询项目简单信息总数
    int queryDescTotal(Map<String, Object> map);

    ProjectinfosCustomEntity queryCustomInfo(@Param("projectinfoid") String projectinfoid);

    //查找项目的详细信息
    List<ProjectinfosCustomEntity> queryCustomList(Map<String, Object> map);

    //查找项目id是否存在
    int isProjectIdExist(String projectid);

    //查询审核看到的信息
    List<ProjectinfosCustomEntity> queryAuditList(Map<String, Object> map);

    //审核项目
    int auditProject(ProjectinfosEntity projectinfos);

    ProjectinfosCustomEntity queryAuditInfo(@Param("projectinfoid") String projectinfoid);

    int queryAuditTotal(Map<String, Object> map);

    //api
    //查询项目简介列表
    List<ProjectinfosCustomEntity> queryApiList(Map<String, Object> map);

    //查询项目详细信息
    ProjectinfosCustomEntity queryApiInfo(@Param("projectinfoid") String projectinfoid);

    //查询项目列表总数
    int queryApiTotal(Map<String, Object> map);

    int updateApiProject(ProjectinfosEntity projectinfosEntity);

    //判断用户是否拥有此项目
    int isProjectExistByUser(Map<String, Object> params);

    //查询项目进度
    int queryProgress(@Param("projectinfoid") String projectinfoid);

    //修改浏览次数
    int addViewTimes(String projectinfoid);

    //修改收藏次数
    int addCollectTimes(String projectinfoid);

    //减一收藏次数
    int minusCollectTimes(String projectinfoid);

    //查询项目的审核状态
    int queryAuditStatus(@Param("projectinfoid") String projectinfoid);

    //查询联系信息
    String queryConnectionInfo(@Param("projectinfoid") String projectinfoid);
}